package com.ruoyi.order.domain;

import com.ruoyi.common.core.domain.OrderEntity;
import com.ruoyi.employee.domain.EmployeeUser;
import com.ruoyi.customer.domain.CustomerUser;
import com.ruoyi.market.domain.ConfigBase;
import com.ruoyi.market.domain.Gift;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 礼物订单 tb_order_gift
 *
 * @author ruoyi
 */
public class OrderGift extends OrderEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单编号 */
    private String orderNo;

    /** 店员ID */
    private Long employeeUserId;

    /** 分销用户ID */
    private Long distributionUserId;

    /** 礼物ID */
    private Long giftId;

    /** 礼物数量 */
    private Long giftNum;

    /** 用户微信 */
    private String wxId;

    /** 店铺ID */
    private String shopId;

    /** 是否匿名（Y=是,N=否, 未知） */
    private String isAnonymous;

    /** 是否分销（Y=是,N=否, 未知） */
    private String isDistribution;

    /** 支付状态 （paid-已支付 unpaid-未支付 cancel-已取消 默认unpaid） */
    private String payStatus;

    /** 支付类型 微信小程序-wxmp 微信公众号h5-wxofficailaccount 苹果app-iosapp 支付宝-alipay 余额-balance  */
    private String payType;

    /** 打赏类型 gift-礼物 amount-金额  */
    private String rewardType;

    /** 礼物单价 */
    private BigDecimal giftPrice;

    /** 初始金额 */
    private BigDecimal initAmount;

    /** 优惠金额 */
    private BigDecimal discountAmount;

    /** 实付金额 */
    private BigDecimal actualAmount;

    /** 分销提成金额 */
    private BigDecimal distributionAmount;

    /** 店员提成金额 */
    private BigDecimal employeeGetAmount;

    /** 支付参数 不写入库表 */
    private Object payParams;

    /** 最终受益金额 */
    private BigDecimal finalAmount;

    private EmployeeUser employeeUser;

    private CustomerUser customerUser;

    private Gift gift;

    /** 所属店铺信息   */
    private ConfigBase shopInfo;

    public OrderGift()
    {

    }

    public OrderGift(String orderNo)
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo(){ return orderNo; }

    public void setOrderNo(String orderNo){ this.orderNo = orderNo; }

    public String getShopId(){ return shopId; }

    public void setShopId(String shopId){ this.shopId = shopId; }

    public BigDecimal getGiftPrice(){ return giftPrice;}

    public void setGiftPrice(BigDecimal giftPrice){ this.giftPrice = giftPrice; }

    public BigDecimal getInitAmount(){ return initAmount;}

    public void setInitAmount(BigDecimal initAmount){ this.initAmount = initAmount; }

    public BigDecimal getActualAmount(){ return actualAmount;}

    public void setActualAmount(BigDecimal actualAmount){ this.actualAmount = actualAmount; }

    public BigDecimal getDiscountAmount(){ return discountAmount;}

    public void setDiscountAmount(BigDecimal discountAmount){ this.discountAmount = discountAmount; }

    public BigDecimal getDistributionAmount(){ return distributionAmount;}

    public void setDistributionAmount(BigDecimal distributionAmount){ this.distributionAmount = distributionAmount; }

    public BigDecimal getEmployeeGetAmount(){ return employeeGetAmount;}

    public void setEmployeeGetAmount(BigDecimal employeeGetAmount){ this.employeeGetAmount = employeeGetAmount; }

    public BigDecimal getFinalAmount(){ return finalAmount;}

    public void setFinalAmount(BigDecimal finalAmount){ this.finalAmount = finalAmount; }


    public Long getGiftNum(){ return giftNum;}

    public void setGiftNum(Long giftNum){ this.giftNum = giftNum; }
    public Long getGiftId()
    {
        return giftId;
    }

    public void setGiftId(Long giftId)
    {
        this.giftId = giftId;
    }

    public Long getEmployeeUserId()
    {
        return employeeUserId;
    }

    public void setEmployeeUserId(Long employeeUserId)
    {
        this.employeeUserId = employeeUserId;
    }

    public Long getDistributionUserId()
    {
        return distributionUserId;
    }

    public void setDistributionUserId(Long distributionUserId)
    {
        this.distributionUserId = distributionUserId;
    }

    public String getWxId()
    {
        return wxId;
    }

    public void setWxId(String wxId)
    {
        this.wxId = wxId;
    }

    public String getIsAnonymous(){ return isAnonymous; }

    public void setIsAnonymous(String isAnonymous)
    {
        this.isAnonymous = isAnonymous;
    }

    public String getIsDistribution(){ return isDistribution; }

    public void setIsDistribution(String isDistribution)
    {
        this.isDistribution = isDistribution;
    }

    public String getPayStatus()
    {
        return payStatus;
    }

    public void setPayStatus(String payStatus)
    {
        this.payStatus = payStatus;
    }

    public String getPayType()
    {
        return payType;
    }

    public void setPayType(String payType)
    {
        this.payType = payType;
    }

    public String getRewardType()
    {
        return rewardType;
    }

    public void setRewardType(String rewardType)
    {
        this.rewardType = rewardType;
    }

    public Object getPayParams()
    {
        return payParams;
    }

    public void setPayParams(Object payParams)
    {
        this.payParams = payParams;
    }

    public EmployeeUser getEmployeeUser() { return employeeUser; }

    public void setEmployeeUser(EmployeeUser employeeUser)
    {
        this.employeeUser = employeeUser;
    }

    public CustomerUser getCustomerUser() { return customerUser; }

    public void setCustomerUser(CustomerUser customerUser)
    {
        this.customerUser = customerUser;
    }

    public Gift getGift() { return gift; }

    public void setGift(Gift gift)
    {
        this.gift = gift;
    }

    public ConfigBase getShopInfo()
    {
        return shopInfo;
    }

    public void setShopInfo(ConfigBase shopInfo)
    {
        this.shopInfo = shopInfo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderNo", getOrderNo())
            .append("orderUserId", getOrderUserId())
            .append("payUserId", getPayUserId())
            .append("employeeUserId", getEmployeeUserId())
            .append("distributionUserId", getDistributionUserId())
            .append("giftId", getGiftId())
            .append("giftNum", getGiftNum())
            .append("wxId", getWxId())
            .append("shopId", getShopId())
            .append("isAnonymous", getIsAnonymous())
            .append("isDistribution", getIsDistribution())
            .append("payStatus", getPayStatus())
            .append("giftPrice", getGiftPrice())
            .append("initAmount", getInitAmount())
            .append("actualAmount", getActualAmount())
            .append("discountAmount", getDiscountAmount())
            .append("distributionAmount", getDistributionAmount())
            .append("employeeGetAmount", getEmployeeGetAmount())
            .append("finalAmount", getFinalAmount())
            .append("appId", getAppId())
            .append("appType", getAppType())
            .append("payType", getPayType())
            .append("rewardType", getRewardType())
            .append("openId", getOpenId())
            .append("platform", getPlatForm())
            .append("payParams", getPayParams())
            .append("shopInfo", getShopInfo())
            .append("employeeUser", getEmployeeUser())
            .append("customerUser", getCustomerUser())
            .append("gift", getGift())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
